﻿using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AccesoDatos.Modulos.ClasesAccesoDatos
{
    public class AD_Usuario_Empresa
    {
        public void CRE_Esq_Planta(SqlCommand comando, MOD_Usuario_Empresa obj)
        {
            try
            {
                string sp = "SP_CRE_Usuario_Empresa";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@UXE_CODUSUARIO", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODWNER", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@UXE_CODBASESATOS", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODODBC", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODESQEMAPLANTA", SqlDbType.Int));

                comando.Parameters[0].Value = obj.UXE_codusuario;
                comando.Parameters[1].Value = obj.UXE_codowner;
                comando.Parameters[2].Value = obj.UXE_codbasedatos;
                comando.Parameters[3].Value = obj.UXE_codobdc;
                comando.Parameters[4].Value = obj.UXE_codesqemaplanta;

                comando.ExecuteNonQuery();
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

        public void DEL_Usuario_Empresa(SqlCommand comando, int UXE_CODUSUARIO, int UXE_CODOWNER, int UXE_CODBASEDATOS, int UXE_CODODBC, int UXE_CODESQEMAPLANTA)
        {
            try
            {
                string sp = "SP_DEL_Usuario_Empresa";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@UXE_CODUSUARIO", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODWNER", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@UXE_CODBASESATOS", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODODBC", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODESQEMAPLANTA", SqlDbType.Int));

                comando.Parameters[0].Value = UXE_CODUSUARIO;
                comando.Parameters[1].Value = UXE_CODOWNER;
                comando.Parameters[2].Value = UXE_CODBASEDATOS;
                comando.Parameters[3].Value = UXE_CODODBC;
                comando.Parameters[4].Value = UXE_CODESQEMAPLANTA;

                comando.ExecuteNonQuery();

            }
            catch (Exception exc)
            {

                throw exc;
            }
        }


        public void UPD_Usuario_Empresa(SqlCommand comando, MOD_Usuario_Empresa obj)
        {
            try
            {
                string sp = "SP_UPD_Usuario_Empresa";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@UXE_CODUSUARIO", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODWNER", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@UXE_CODBASESATOS", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODODBC", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODESQEMAPLANTA", SqlDbType.Int));

                comando.Parameters[0].Value = obj.UXE_codusuario;
                comando.Parameters[1].Value = obj.UXE_codowner;
                comando.Parameters[2].Value = obj.UXE_codbasedatos;
                comando.Parameters[3].Value = obj.UXE_codobdc;
                comando.Parameters[4].Value = obj.UXE_codesqemaplanta;

                comando.ExecuteNonQuery();
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }


        public List<MOD_Usuario_Empresa> SEL_Grid_Usuario_Empresa(SqlCommand comando)
        {
            try
            {
                string sp = "SP_SEL_Grid_Usuario_Empresa";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                List<MOD_Usuario_Empresa> lista = new List<MOD_Usuario_Empresa>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    MOD_Usuario_Empresa obj = new MOD_Usuario_Empresa();

                    obj.UXE_codusuario = Convert.ToInt32(dt.Rows[i]["UXE_codusuario"]);
                    obj.UXE_codowner = dt.Rows[i]["UXE_codowner"].ToString();
                    obj.UXE_codbasedatos = Convert.ToInt32(dt.Rows[i]["UXE_codbasedatos"]);
                    obj.UXE_codobdc = Convert.ToInt32(dt.Rows[i]["UXE_codobdc"]);
                    obj.UXE_codesqemaplanta = Convert.ToInt32(dt.Rows[i]["UXE_codesqemaplanta"]);

                    lista.Add(obj);
                }

                return lista;
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

        public MOD_Usuario_Empresa SEL_Usuario_EmpresaByID( SqlCommand comando, int UXE_CODUSUARIO, int UXE_CODOWNER, int UXE_CODBASEDATOS, int UXE_CODODBC, int UXE_CODESQEMAPLANTA)
        {
            try
            {
                string sp = "SP_SEL_Usuario_EmpresaByID";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@UXE_CODUSUARIO", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODWNER", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@UXE_CODBASESATOS", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODODBC", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@UXE_CODESQEMAPLANTA", SqlDbType.Int));

                comando.Parameters[0].Value = UXE_CODUSUARIO;
                comando.Parameters[1].Value = UXE_CODOWNER;
                comando.Parameters[2].Value = UXE_CODBASEDATOS;
                comando.Parameters[3].Value = UXE_CODODBC;
                comando.Parameters[4].Value = UXE_CODESQEMAPLANTA;

                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                MOD_Usuario_Empresa obj = new MOD_Usuario_Empresa();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    obj.UXE_codusuario = Convert.ToInt32(dt.Rows[i]["UXE_codusuario"]);
                    obj.UXE_codowner = dt.Rows[i]["UXE_codowner"].ToString();
                    obj.UXE_codbasedatos = Convert.ToInt32(dt.Rows[i]["UXE_codbasedatos"]);
                    obj.UXE_codobdc = Convert.ToInt32(dt.Rows[i]["UXE_codobdc"]);
                    obj.UXE_codesqemaplanta = Convert.ToInt32(dt.Rows[i]["UXE_codesqemaplanta"]);
                }

                return obj;
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }


    }


}
